<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>枚举对象属性</title>
</head>
<body>

</body>
<script>
    // 1、for...in...
    const obj = {
        a: '山东省',
        b: 266000
    }
    // 使用Object.create创建一个原型为obj的对象 （模拟继承来的属性）
    const newObj = Object.create(obj)
    newObj.newA = '山西省'
    newObj.newB = '030001'

    for(i in newObj){
        console.log(i) // newA newB  a  b
    }

    // 将其中的一个属性变为不可枚举属性
    Object.defineProperty(newObj, 'newA', {
        enumerable: false
    })

    for(i in newObj){
        console.log(i)   // newB  a  b
    }

    // 2、Object.keys()
    // 接 for... in... 的例子
    const result = Object.keys(newObj)
    console.log(result) // ["newB"]

    // 3、Object.getOwnPropertyNames()
    const result2 = Object.getOwnPropertyNames(newObj)
    console.log(result2) // ["newA","newB"]
</script>
</html>
